#pragma once


class Model
{
private:
    /**
        \brief 3D vertex attributes

        Stores vertex attributes. Right now we hold position, normal, and texture
          coordinates (shared between all textures: diffuse, specular, bump, ...)
    */
    typedef struct
    {
        // Position
        float x, y, z;
        // Normal
        float nx, ny, nz;
        // Texture coordinates (same used for diffuse, specular, ...)
        float u, v;
    } TVertex3D;

public:
    //! Constructor
    Model(void);
    //! Destructor
    ~Model(void);

    /*!
    Takes care of initializing a 3D model
    */
    //bool initialize(void);

private:
    //! Vertex array
    TVertex3D * m_vertices;

    //! Vertices counter
    unsigned m_nVert;

    //! Index array
    unsigned int * m_elements;

    //! Indices counter
    unsigned m_nElem;
};

